package com.gkzf.ai.module.crm.controller.admin.product.vo.productadmittancecondition;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

@Schema(description = "管理后台 - CRM 产品准入条件新增/修改 Request VO")
@Data
public class ProductAdmittanceConditionSaveReqVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "21865")
    private Long id;

    @Schema(description = "产品编码")
    private String no;

    @Schema(description = "户籍 多个进行分割如1,2,3")
    private String basicInfoCensusRegister;

    @Schema(description = "1工薪族2法人", example = "1")
    @NotEmpty(message = "客户类型不能为空")
    private String basicInfoCustomerType;

    @Schema(description = "单位性质 1,2,3 0不限制")
    @NotEmpty(message = "单位性质不能为空")
    private String basicInfoUnitNature;

    @Schema(description = "禁止特殊行业 1,2,3 0不限制")
    private String basicInfoSpecialIndustry;

    @Schema(description = "年龄限制json")
    @NotEmpty(message = "年龄限制不能为空")
    private String basicInfoAgeJson;

    @Schema(description = "可贷点 1,2,3")
    @NotEmpty(message = "可贷点不能为空")
    private String basicInfoLoanUses;

    @Schema(description = "负债情况json")
    @NotEmpty(message = "负债情况不能为空")
    private String creditReportLiabilityJson;

    @Schema(description = "逾期记录贷款和信用卡情况json")
    @NotEmpty(message = "逾期记录不能为空")
    private String creditReportOverdueJson;

    @Schema(description = "查询记录情况json")
    @NotEmpty(message = "查询记录不能为空")
    private String creditReportQueryJson;

    @Schema(description = "司法限制月数")
    private Integer creditReportJudicialMonths;

    @Schema(description = "司法限制类型1,2,3", example = "1")
    private String creditReportJudicialType;

    @Schema(description = "社保缴存地点")
    private Integer creditReportSocialPlace;

    @Schema(description = "社保缴存期限")
    private Integer creditReportSocialMonths;

    @Schema(description = "社保缴存基数(存在小数情况)")
    private Double creditReportSocialBase;

    @Schema(description = "公积金缴纳地点")
    private Integer creditReportFundPlace;

    @Schema(description = "公积金缴纳期限")
    private Integer creditReportFundMonths;

    @Schema(description = "公积金缴纳基数")
    private Double creditReportFundBase;

    @Schema(description = "0不限制，1大白户，2小白户", example = "2")
    private String creditReportWhiteType = "0";

    @Schema(description = "0不限制，1五级分类")
    private Integer creditReportFiveLevel = 0;

    @Schema(description = "是否选择收入负债比 0：选中  1：忽略")
    private Integer isIncomeDebtRatio = 1;

    @Schema(description = "收入负债比公式")
    private String incomeDebtRatio;

    @Schema(description = "学历")
    private Integer educationLevel;

    @Schema(description = "合作机构")
    @NotNull(message = "合作机构不能为空")
    private Integer cooperationInstitution;

}